<?php

require_once 'DAO/Banco.php';
require_once 'DAO/DAOEventos.php';
require_once 'Model/Lote.php';

class DAOLote extends Banco {

    function getLotes($codigoEvento) {
        $lotes = array();
        Banco::conecta();
        $banco = Banco::getBanco();
        if ($sql = $banco->prepare("SELECT LOT_CODIGO, LOT_CODEVENTO, LOT_NUMERO, LOT_QUANTIDADE, LOT_VALORHOMEM, LOT_VALORMULHER, LOT_DATAINICIO, LOT_DATAFIM FROM TB_LOTE WHERE LOT_CODEVENTO = ?")) {
            $sql->bind_param('i', $codigoEvento);
            $sql->execute();
            $sql->bind_result($codigo, $evento, $numero, $quantia, $valorhomem, $valormulher, $datainicio, $datafim);
            while ($sql->fetch()) {
                $lote = new Lote();
                $de = new DAOEventos();
                $lote->setCodigo($codigo);
                $lote->setDataFim($datafim);
                $lote->setDataInicio($datainicio);
                $lote->setEvento($de->getEvento($evento));
                $lote->setNumero($numero);
                $lote->setQuantidade($quantia);
                $lote->setVlrHomem($valorhomem);
                $lote->setVlrMulher($valormulher);
                $lotes[] = (object) $lote;
            }
            $sql->close();
        }
        $banco->close();
        return $lotes;
    }

    function getLote($codigoLote) {
        $lote = NULL;
        Banco::conecta();
        $banco = Banco::getBanco();
        if ($sql = $banco->prepare("SELECT LOT_CODIGO, LOT_CODEVENTO, LOT_NUMERO, LOT_QUANTIDADE, LOT_VALORHOMEM, LOT_VALORMULHER, LOT_DATAINICIO, LOT_DATAFIM FROM TB_LOTE WHERE LOT_CODIGO = ?")) {
            $sql->bind_param('i', $codigoLote);
            $sql->execute();
            $sql->bind_result($codigo, $evento, $numero, $quantia, $valorhomem, $valormulher, $datainicio, $datafim);
            while ($sql->fetch()) {
                $lote = new Lote();
                $de = new DAOEventos();
                $lote->setCodigo($codigo);
                $lote->setDataFim($datafim);
                $lote->setDataInicio($datainicio);
                $lote->setEvento($de->getEvento($evento));
                $lote->setNumero($numero);
                $lote->setQuantidade($quantia);
                $lote->setVlrHomem($valorhomem);
                $lote->setVlrMulher($valormulher);
            }
            $sql->close();
        }
        $banco->close();
        return $lote;
    }

    function addLote(Lote $lote) {
        Banco::conecta();
        $banco = Banco::getBanco();
        if (is_a($lote->getEvento(), 'Evento')) {
            $evento = $lote->getEvento()->getCodigo();
        } else {
            $evento = NULL;
        }
        $numero = $lote->getNumero();
        $dataFim = $lote->getDataFim();
        $dataInicio = $lote->getDataInicio();
        $quantidade = $lote->getQuantidade();
        $vlrHomem = $lote->getVlrHomem();
        $vlrMulher = $lote->getVlrMulher();
        if ($sql = $banco->prepare("INSERT INTO TB_LOTE VALUES (DEFAULT, ?, ?, ?, ?, ?, ?, ?);")) {
            $sql->bind_param('iiiddss', $evento, $numero, $quantidade, $vlrHomem, $vlrMulher, $dataInicio, $dataFim);
            $sql->execute();
            $sql->close();
        }
        $banco->close();
    }

    function updateLote(Lote $lote) {
        Banco::conecta();
        $banco = Banco::getBanco();
        if (is_a($lote->getEvento(), 'Evento')) {
            if ($this->getLote($lote->getCodigo())==NULL) {
                $this->addLote($lote);
            } else {
                $codigo = $lote->getCodigo();
                $quantidade = $lote->getQuantidade();
                $vlrHomem = $lote->getVlrHomem();
                $vlrMulher = $lote->getVlrMulher();
                $numero = $lote->getNumero();
                if ($sql = $banco->prepare("UPDATE TB_LOTE SET LOT_VALORHOMEM=?, LOT_VALORMULHER=?, LOT_QUANTIDADE=? WHERE LOT_CODIGO=? AND LOT_NUMERO=?;")) {
                    $sql->bind_param('iiiii', $vlrHomem, $vlrMulher, $quantidade, $codigo, $numero);
                    $sql->execute();
                    $sql->close();
                }
                $banco->close();
            }
        }
    }

}

?>
